# Author: Yu Bin
# Date: 2025/01/01 16:20:13
# E-mail: 853823259@qq.com
# 1.完成包的使用（与上课一致）
import wd_message

wd_message.send_message.send()
txt = wd_message.receive_message.receive()
print(txt)
# 2.完成文件的文本模式的读，写（与上课一致）
import os


def open_r():
    """
    读取文件
    :return:
    """
    file = open('file2.txt', mode='r+', encoding='utf-8')
    text = file.read()  # 读出来的都是字符串
    print(text)
    file.write("world")  # 写到末尾
    text = file.read()
    print(text)
    file.close()


def use_readline():
    file = open("README")
    while True:
        text = file.readline()
        if not text:
            break
        print(text, end="")
    file.close()


# 3.完成目录的listdir，getcwd,chdir的使用（与上课一致）
def use_dir_func():
    file_list = os.listdir('.')
    print(file_list)
    os.mkdir('dir2')
    os.rmdir('dir1')
    print((os.getcwd()))


# 4.完成python的传参练习（与上课一致）
#
# 代码编写与上课一致即可
#
# 难度作业：
# 5、完成普通文件文件的seek，二进制文件的seek（代码编写与上课一致即可）
def seek_start():
    """
    相对于开头进行偏移
    :return:
    """
    file = open('file2.txt', mode='r+', encoding='utf8')
    file.seek(0, os.SEEK_SET)  # 相对于开头偏移n个字节，汉字的偏移是3的整数倍
    text = file.read(5)
    print(text)
    file.close()


def seek_b_cur():
    """
    在b模式下，读取到的是字节流
    :return:
    """
    file = open('file2.txt', mode='rb+')
    file.seek(5, os.SEEK_CUR)
    file.seek(-2, os.SEEK_CUR)
    file.seek(-2, os.SEEK_END)
    b = file.read()
    print(b)
    file.close()


# 6、完成目录深度优先遍历（代码编写与上课一致即可）
def scan_dir(current_path, width):
    """
    深度优先遍历
    :param current_path:
    :return:
    """
    file_list = os.listdir(current_path)  # 得到当前文件夹下所有文件
    for file in file_list:
        print(' ' * width, file)  # 打印文件名
        if os.path.isdir(file):
            scan_dir(file, width + 4)
